package diagrama;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.Scanner;
import java.util.TreeSet;
/**
 * 
 * @author marcos, ricardo e roberto
 *
 * clase que exibe as opcoes do programa
 */

public class menu {
	
	Scanner ler = new Scanner(System.in);
	/**
	 * 
	 * @throws IOException
	 * @throws ClassNotFoundException
	 * construtor que inicializa o menu
	 */
	public menu() throws IOException, ClassNotFoundException{
	
		/**
		 * instancia objeto escola
		 */
	Escola esco = new Escola();
	
	// laco para exibicao do menu
	int op=20;
	while (op != 0){					
		System.out.println("Controle Academico da escola MRR");
		System.out.println();
		System.out.println("1- Cadastrar Curso		9- Cadastrar Professor");
		System.out.println("2- Listar Curso        		10- Listar Professor");
		System.out.println("3- Pesquisar Curso     		11- Pesquisar Professor");
		System.out.println("4- Remover Curso       		12- Remover Professor\n");
		System.out.println("5- Cadastrar Turma  		13- Cadastrar Aluno");
		System.out.println("6- Listar Truma     		14- Listar Aluno");
		System.out.println("7- Pesquisar Turma  		15- Pesquisar Aluno");
		System.out.println("8- Remover Turma    		16- Remover Aluno \n");
		System.out.println("               0 - SAIDA" );
		System.out.println("Digite uma opçao: \n");
		op = ler.nextInt();
	
	switch (op) {
	
		case 1: // cadastro de cursos
		Scanner ler1 = new Scanner(System.in);
		System.out.println("Digite o codigo do curso: Formato(XX)");
		String idCurso = ler1.nextLine();
		Curso c = new Curso(idCurso);
		if (esco.pesquisarCurso(c)) System.out.println("Curso ja cadastrado");
		else {
		System.out.println("Digite o nome do curso: ");
		String nomeCurso = ler1.nextLine();
		System.out.println("Digite o tipo do curso (Palestra, curso seriado, etc): ");
		String tipoCurso = ler1.nextLine();
		System.out.println("Digite a duração do curso(longa, média ou curta): ");
		String duracao = ler1.nextLine();
		Curso c1 = new Curso(idCurso, nomeCurso, tipoCurso, duracao);
		if (esco.cadastrarCurso(c1)) System.out.println("Curso cadastrado com sucesso");
		}
	break;
	
	case 2: // lista de cursos
		TreeSet <Curso>c2 = esco.listarCurso();
		for (Curso s : c2){
			System.out.printf("%s\n", s);
		}
	break;
	
	case 3: // pesquisar por cursos
		Scanner ler3 = new Scanner(System.in);
		System.out.println("Digite o codigo do curso: Formato(XX)");
		String id3 = ler3.next();
		Curso c3 = new Curso(id3);
		if (esco.pesquisarCurso(c3)) System.out.println("Curso já cadastrado!");
		else System.out.println("Curso não cadastrado");
	break;
	
	case 4: // remocao de curso
		Scanner ler4 = new Scanner(System.in);
		System.out.println("Digite o codigo do curso: Formato (XX)");
		String id4 = ler4.next();
		Curso c4 = new Curso(id4);
		if (esco.pesquisarCurso(c4)){
		if (esco.removerCurso(c4)) System.out.println("Curso removido com sucesso");
		else System.out.println("Problema ao remover o curso");
		}
		else System.out.println("Curso não cadastrado");
	break;
	
	case 5: // cadastro de turma
		Scanner ler5 = new Scanner(System.in);
		TreeSet <Curso> t5 = esco.listarCurso();
		for (Curso s : t5){
			System.out.printf("%s\n", s);
		}
		System.out.println("Digite o codigo do curso a que pertence a nova turma: ");
		String id5 = ler5.nextLine();
		Curso c5 = new Curso(id5);
		if (esco.pesquisarCurso(c5)){
			System.out.println("1- Adicionar turma");
			System.out.println("2- Adicionar/Trocar o professor da turma");
			System.out.println("3- Adicionar Aluno na Turma\n");		
			System.out.println("Digite uma opçao: ");
			Scanner le5 = new Scanner(System.in);
			op = le5.nextInt();
			switch (op) {
				case 1:
					System.out.println("digite o codigo da turma");
					String idTurma = ler5.nextLine();
					Turma t1 = new Turma(idTurma);
					if (esco.pesquisarTurma(t1)) System.out.println("Turma ja cadastrada");
					else{
						System.out.println("digite a disciplina para esta turma");
						String nomet = ler5.nextLine();
						Turma tt1 = new Turma(idTurma, nomet);
					if (esco.cadastrarTurma(tt1)) System.out.println("Turma cadastrada com sucesso");
					}
				break;
				case 2:					
					System.out.println("matricula do professor");
					String matricula11 = ler5.nextLine();
					Professor pf = new Professor(matricula11);
					if(esco.pesquisarProfessor(pf)){
						System.out.println("digite o codigo da turma");
						String idTurma1 = ler5.nextLine();
						Turma tu = new Turma(idTurma1);
						if(esco.Tturma.contains(tu)){
							System.out.println("ok");
							} 
							else
							System.out.println("Turma não encontrada");
						}
					else
						System.out.println("Professor não cadastrado");
				break;
				
				case 3:
						System.out.println("Digite a matrícula do aluno");
						String idd3 = ler5.next();
						Aluno aluno = new Aluno(idd3);
						if(esco.pesquisarAluno(aluno)){
								System.out.println("digite o nome da turma");
								String nomeTurma1 = ler5.nextLine();
								Turma tu = new Turma(nomeTurma1);
						}
				break;

				default:
				break;
		}
		}else System.out.println("Curso vão encoctrado");
		
	break;
	default:
		break;
			
	case 6://listar turma
		TreeSet <Turma>t6 = esco.listarTurma();
		for (Turma s : t6){
			System.out.printf("%s\n", s);
		}
		esco.listarProfessor();
	break;
	
	case 7://pesquisar turma
		Scanner ler7 = new Scanner(System.in);
		System.out.println("Digite o codigo da turma: Formato(XXX)");
		String id7 = ler7.next();
		Turma t7 = new Turma(id7);
		if (esco.pesquisarTurma(t7)) System.out.println("Truma já cadastrada!");
		else System.out.println("Turma não cadastrada");
	break;
	
	case 8://remover turma
		Scanner ler8 = new Scanner(System.in);
			System.out.println("Digite o codigo da turma: Formato (XXX) ");
			String id8 = ler8.next(); 
			Turma t8 = new Turma(id8);
			if (esco.pesquisarTurma(t8)){
				if (esco.removerTurma(t8)) System.out.println("Turma removida com sucesso");
				else System.out.println("Problema ao remover a turma");
			}
			else System.out.println("Turma não encontrada");
	break;
	
	case 9://cadastrar professor
		Scanner ler9 = new Scanner(System.in);
		System.out.println("Digite a matricula do novo professor: ");
		String id9 = ler9.nextLine();
		Professor p9 = new Professor(id9);
		if (esco.pesquisarProfessor(p9)) System.out.println("Professor ja cadastrado");
		else {
		System.out.println("Digite o nome do novo professor");
		String nom = ler9.nextLine();
		System.out.println("Digite a idade do novo professor");
		String idade = ler9.nextLine();
		System.out.println("Digite o endereco do novo professor");
		String end = ler9.nextLine();
		Professor p10 = new Professor(id9, nom, idade, end);
		if (esco.cadastrarProfessor(p10)) System.out.println("Professor cadastrado com sucesso");
		}
	break;
	
	case 10://listar professor
		TreeSet <Professor>p2 = esco.listarProfessor();
		for (Professor s : p2){
			System.out.printf("%s\n", s);
		}
	break;
	
	case 11://pesquisar professor
		System.out.println("Digite a matricula do professor: ");
		String id11 = ler.next();
		Professor p3 = new Professor(id11);
		if (esco.pesquisarProfessor(p3)) System.out.println("Professor já cadastrado!");
		else System.out.println("Professor não cadastrado");
	break;
	
	case 12://remover professor
		Scanner ler12 = new Scanner(System.in);
			System.out.println("Digite o codigo do professor: ");
			String id12 = ler12.next();
			Professor p12 = new Professor(id12);
			if (esco.pesquisarProfessor(p12)){
				if (esco.removerProfessor(p12)) System.out.println("Professor removido com sucesso");
				else System.out.println("Problema ao remover o professor");
			}
			else System.out.println("Professor não encontrado");
	break;
	
	case 13://adicionar aluno
		Scanner ler13 = new Scanner(System.in);
		System.out.println("Digite a matricula do novo aluno: ");
		String id13 = ler13.next();
		Aluno a = new Aluno(id13);
		if (esco.pesquisarAluno(a)) System.out.println("Aluno ja matriculado");
		else {
			Scanner le13 = new Scanner(System.in);
			System.out.println("Digite o nome do novo aluno");
			String nom = le13.nextLine();
			System.out.println("Digite a idade do novo aluno");
			String idade = le13.nextLine();
			System.out.println("Digite o endereço do novo aluno");
			String end = le13.nextLine();
			System.out.println("Qual o codigo do curso que o novo aluno vai cursar");
			String curso = le13.nextLine();
			Curso cp = new Curso(curso);
			Aluno a1 = new Aluno(id13, nom, idade, end);
			if (esco.pesquisarCurso(cp)) a1.cursos[1]= curso;
			else System.out.println("Curso nao existe ainda");
			if (esco.cadastrarAluno(a1)) System.out.println("Aluno cadastrado com sucesso");
			}
	break;

	case 14://listar aluno
		TreeSet <Aluno>a2 = esco.listarAluno();
		for (Aluno s : a2){
			System.out.printf("%s\n", s);
		}
	break;
	
	case 15://pesquisar aluno
		System.out.println("Digite a matricula do aluno: ");
		String id15 = ler.next();
		Aluno a3 = new Aluno(id15);
		if (esco.pesquisarAluno(a3)) System.out.println("Aluno já cadastrado!");
		else System.out.println("Aluno não cadastrado");
	break;
	
	case 16://remover aluno
		Scanner ler16 = new Scanner(System.in);
			System.out.println("Digite a matricula do aluno: ");
			String id16 = ler16.next();
			Aluno a16 = new Aluno(id16);
			if (esco.pesquisarAluno(a16)){
				if (esco.removerAluno(a16)) System.out.println("Aluno removido com sucesso");
				else System.out.println("Problema ao remover o aluno");
			}
			else System.out.println("Aluno não encontrado");
	break;

	}
	}
}	
}
